API Documentation
ShaderPassMemorySlot.h
1 // ShaderPassMemorySlot.h
3 //
5 
6 namespace nkGraphics
7 {
14  class DLL_GRAPHICS_EXPORT ShaderPassMemorySlot : public ShaderMemorySlot
15  {
16  public :
17 
21  enum class DATA_TYPE
22  {
23  UNKNOWN = 0,
24  VECTOR,
25  MATRIX,
26  CAM_CORNERS_WORLD,
27  CAM_CORNERS_VIEW,
28  TARGET_SIZE,
29  PROJECTION_PARAMS,
30  TEXTURE_SIZE,
31  VIEW_MATRIX,
32  VIEW_MATRIX_INV,
33  PROJ_MATRIX,
34  PROJ_MATRIX_INV,
35  CAM_POSITION,
36  CAM_DIRECTION_WORLD,
37  TIME,
38  CUSTOM
39  } ;
40 
41  public :
42 
50  virtual ~ShaderPassMemorySlot () ;
51 
52  // Getters
56  void* getData () const ;
60  virtual unsigned int getDataSize () const ;
64  virtual const char* getTypeAsString () const override ;
68  DATA_TYPE getType () const ;
77 
78  // Setters
85  void setFromVector (const nkMaths::Vector& data) ;
92  void setFromMatrix (const nkMaths::Matrix& data) ;
99  void setAsCamCornersWorld (Camera* forcedCamera = nullptr) ;
106  void setAsCamCornersView (Camera* forcedCamera = nullptr) ;
123  void setAsTargetSize () ;
146  void setAsProjectionParameters (Camera* forcedCamera = nullptr) ;
153  void setAsViewMatrix (Camera* forcedCamera = nullptr) ;
160  void setAsViewMatrixInv (Camera* forcedCamera = nullptr) ;
167  void setAsProjectionMatrix (Camera* forcedCamera = nullptr) ;
174  void setAsProjectionMatrixInv (Camera* forcedCamera = nullptr) ;
181  void setAsCameraPosition (Camera* forcedCamera = nullptr) ;
188  void setAsCameraDirectionWorld (Camera* forcedCamera = nullptr) ;
205  void setAsTextureSize (Texture* tex) ;
224  void setAsTime (unsigned int modulo) ;
231 
237  virtual void exportClassToTree (nkExport::Node* rootNode) override ;
243  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
244  } ;
245 }
nkGraphics::ShaderPassMemorySlot::getDataAsMatrix
nkMaths::Matrix * getDataAsMatrix() const
nkGraphics::PASS_TYPE::UNKNOWN
@ UNKNOWN
Unknown place holder.
nkGraphics::ShaderPassMemorySlot::setAsProjectionParameters
void setAsProjectionParameters(Camera *forcedCamera=nullptr)
nkGraphics::ShaderMemorySlot
A memory slot in a memory resource.
Definition: ShaderMemorySlot.h:15
nkGraphics::ShaderPassMemorySlot::setAsViewMatrix
void setAsViewMatrix(Camera *forcedCamera=nullptr)
nkGraphics::Camera
Offers all controls to model a camera.
Definition: Camera.h:12
nkGraphics::ShaderPassMemorySlot::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkGraphics::ShaderPassMemorySlot::setAsCustom
void setAsCustom(ShaderPassCustomSlot *slot)
nkGraphics::Texture
A texture used for rendering, hosted on GPU.
Definition: Texture.h:35
nkGraphics::ShaderPassMemorySlot::setAsProjectionMatrix
void setAsProjectionMatrix(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot::getType
DATA_TYPE getType() const
nkMaths::Matrix
Represents a 4x4 float matrix.
Definition: Matrix.h:12
nkGraphics::ShaderPassMemorySlot::setAsProjectionMatrixInv
void setAsProjectionMatrixInv(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot::DATA_TYPE
DATA_TYPE
Definition: ShaderPassMemorySlot.h:22
nkGraphics::ShaderPassMemorySlot::getTypeAsString
virtual const char * getTypeAsString() const override
nkGraphics::ShaderPassMemorySlot::setAsCamCornersView
void setAsCamCornersView(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot
A memory slot that fits into a ConstantBuffer. The slot fills entries within the buffer.
Definition: ShaderPassMemorySlot.h:15
nkGraphics::ShaderPassMemorySlot::getDataAsVector
nkMaths::Vector * getDataAsVector() const
nkGraphics::ShaderPassMemorySlot::setFromVector
void setFromVector(const nkMaths::Vector &data)
nkGraphics::ShaderPassMemorySlot::getData
void * getData() const
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkGraphics::ShaderPassMemorySlot::setAsCameraDirectionWorld
void setAsCameraDirectionWorld(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot::setAsViewMatrixInv
void setAsViewMatrixInv(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot::getDataSize
virtual unsigned int getDataSize() const
nkGraphics::ShaderPassMemorySlot::setAsTextureSize
void setAsTextureSize(Texture *tex)
nkGraphics::ShaderPassMemorySlot::~ShaderPassMemorySlot
virtual ~ShaderPassMemorySlot()
nkGraphics::ShaderPassMemorySlot::setAsTargetSize
void setAsTargetSize()
nkGraphics::ShaderPassCustomSlot
A custom slot, implementable by external code.
Definition: ShaderPassCustomSlot.h:12
nkGraphics::ShaderPassMemorySlot::setAsTime
void setAsTime(unsigned int modulo)
nkGraphics
Encompasses all API of component NilkinsGraphics.
Definition: BoundingBox.h:7
nkGraphics::ShaderPassMemorySlot::setAsCameraPosition
void setAsCameraPosition(Camera *forcedCamera=nullptr)
nkMaths::Vector
A 4-component vector class, with floats.
Definition: Vector.h:12
nkGraphics::ShaderPassMemorySlot::setAsCamCornersWorld
void setAsCamCornersWorld(Camera *forcedCamera=nullptr)
nkGraphics::ShaderPassMemorySlot::exportClassToTree
virtual void exportClassToTree(nkExport::Node *rootNode) override
nkGraphics::ShaderPassMemorySlot::ShaderPassMemorySlot
ShaderPassMemorySlot()
nkGraphics::ShaderPassMemorySlot::setFromMatrix
void setFromMatrix(const nkMaths::Matrix &data)